package cn.itcast.zt.example.singleton;

import cn.itcast.zt.annotation.Recommend;
import cn.itcast.zt.annotation.ThreadSafe;

/**
 * 静态内部类：最安全
 * 加载一个类时，其内部类不会同时被加载。
 * 一个类被加载，当且仅当其某个静态成员（静态域、构造器、静态方法等）被调用时发生。。
 * 单例结构是会被破坏,反射破坏
 */
@ThreadSafe
@Recommend
public class SingletonExample8 {
    // 私有构造函数
    private SingletonExample8(){

    }

    private static class Singleton {
        private static final SingletonExample8 INSTANCE = new SingletonExample8() ;
    }

    public static SingletonExample8 getInstance(){
        return  Singleton.INSTANCE ;
    }
}
